Group member recovery techniques

ABSTRACT

Techniques are presented for optimizing secure communications in a network. As disclosed herein, a key server is configured to provision a plurality of routers that are part of a virtual private network. The key server selects a counter value that is part of a security association and calculates a key value. The key server sends the key value, together with the security association, to the plurality of routers that are part of the virtual private network to enable them to exchange encrypted packets with each other in the virtual private network using the key value and the security association. The key server then increments the counter value to a value within a range of counter values capable of being predicted by the plurality of routers that received the key value.

CROSS REFERENCE TO RELATED APPLICATION

This application is a divisional of U.S. Non-provisional applicationSer. No. 14/248,399, filed Apr. 9, 2014, the entirety of which isincorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to optimizing secure communications innetworks.

BACKGROUND

Routers are deployed in network environments to manage and routecommunications between network devices. For example, a network devicemay send to a router a packet destined for another network device. Therouter may forward the packet to other routers in the network before thepacket is ultimately sent to the destination network device. Networkdevices may be grouped in subnetworks that, for example, may represententerprise networks. Network devices in one subnetwork may communicatewith network devices in another subnetwork over a public network (e.g.,the Internet). However, enterprise networks may require enhancedsecurity for communications between local network devices and networkdevices in other subnetworks. Thus, the subnetworks communicate by wayof a virtual private network (VPN) to enable secure and encryptedmessages to be exchanged between network devices in differentsubnetworks over the Internet.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example network topology depicting a plurality routersarranged in in a private network to enable the routers to synchronize orresynchronize with a key server, according to an example embodiment.

FIG. 2 shows an example flow chart depicting operations of a routerreceiving a packet with unknown security parameter information,according to an example embodiment.

FIG. 3 shows an example flow chart depicting operations of the routerresynchronizing in response to receiving multiple packets with unknownsecurity parameter information, according to an example embodiment.

FIG. 4 shows an example flow chart depicting operations of a key serverselecting security parameter information values based upon generatedsecurity associations for the routers, according to an exampleembodiment.

FIG. 5 shows an example flow chart depicting operations performed by therouter in response to receiving packets with unknown security parameterinformation, according to an example embodiment.

FIG. 6 shows an example flow chart depicting operations performed by thekey server to provision the routers in the private network, according toan example embodiment.

FIG. 7 shows an example block diagram of the router configured toperform synchronization or resynchronization operations with the keyserver in response to receiving packets with unknown security parameterinformation, according to an example embodiment.

FIG. 8 shows an example block diagram of the key server, according to anexample embodiment.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

Techniques are presented herein for optimizing secure communications ina network. A first router in a network receives from a second router inthe network an encrypted packet. The encrypted packet has a securityassociation that is unknown to the first router. The securityassociation is in a header of the packet. The first router examines thepacket to determine a counter value associated with the securityassociation. The first router determines whether the counter value is ina range of predicted counter values.

Additionally, a key server is configured to provision routers that arepart of a virtual private network. The key server selects a countervalue that is part of a security association. The key server calculatesa key value. The key server sends the key value together with thesecurity association to the routers such that the routers are able toexchange encrypted packets with each other in the virtual privatenetwork using the key value and the security association. The key serverincrements the counter value to a value within a range of counter valuescapable of being predicted by the routers that received the key value.

Example Embodiments

The techniques presented herein relate to optimizing securecommunications in a network. Specifically, these techniques enablerouter devices to synchronize and resynchronize with a key server inorder to exchange secure communications with each other within thenetwork. An example system topology (“system”) is shown at referencenumeral 100 in FIG. 1. The system 100 may also be referred to as a“network.” The system 100 comprises a plurality of router devices(“routers”) shown at reference numerals 102(a)-102(d), a plurality ofsubnetworks (“subnets”) 104(a)-104(d), a service provider network(“private network”) 106 and a key server 108. The service providernetwork, for example, may be a network that a customer joins, andpackets from the customer that are transmitted in the service providernetwork are typically encrypted. The routers 102(a)-102(d) are devicesthat are configured to manage and route communications between networkdevices in the system 100. In particular, each of the routers102(a)-102(d) is configured to route communications to and from networkdevices in corresponding subnetworks 104(a)-104(d). In FIG. 1,subnetwork 104(a) is also referred to as “subnetwork A” or “subnet A,”subnetwork 104(b) is also referred to as “subnetwork B” or “subnet B,”and so on. In an example, router 102(a) is configured to routecommunications to and from network devices in subnet A, router 102(b) isconfigured to route communications to and from network devices subnet B,router 102(c) is configured to route communications to and from networkdevices subnet C, and router 102(d) is configured to routecommunications to and from network devices subnet D. It should beappreciated that the network devices in the subnetworks 104(a)-104(d)are not shown in FIG. 1. It should be further appreciated that FIG. 1may comprise any number of routers and subnetworks. The topology ofsystem 100 in FIG. 1 is merely an example.

In addition to routing communications to and from correspondingsubnetworks, the routers 102(a)-102(d) are configured to communicatewith each other by way of the private network 106. The private network106 enables network devices in one subnetwork to exchange secure andencrypted communications (e.g., packets) with network devices in othersubnetworks via one or more of the routers 102(a)-102(d). For example,administrators of subnet A and subnet B may require that network devicesin subnet A and subnet B exchange only secure and encryptedcommunications with each other. Thus, a client device in subnet B maysend a packet to router 102(b), and the router 102(b) may encapsulatethe packet to ensure that the packet is encrypted and secure. Router102(b) may then send the packet to router 102(a) across the privatenetwork 106. Router 102(a), upon receiving the encrypted packet, maydecapsulate the packet and send it to the appropriate destinationnetwork device in subnet A. The private network 106 may also be referredto as a virtual private network (VPN). In one example, as shown in FIG.1, router 102(a) may receive a packet 112 with an unknown securityassociation. Router 102(a) may analyze the packet 112 and take anappropriate corrective action. For example, as shown at 113(1) router102(a) may process the packet 112 and forward it to the appropriatedestination network device in subnet A. On the other hand, as shown at113(2), router 102(a) may discard the packet 112. These techniques aredescribed in more detail hereinafter.

The routers 102(a)-102(d) are also configured to exchange communicationswith the key server 108 across the private network 106. Thesecommunications are shown at reference numeral 114 in FIG. 1. The keyserver 108 is a device (or process) that periodically generates anddistributes cryptographic keys (“keys”) to the routers 102(a)-102(d).These keys comprise keying materials and policies that may be sharedbetween multiple routers. For example, the keys may have securityassociations (or SAs) that are shared security attributes that the keyserver 108 can provide to multiple routers. The SAs can contain, e.g., asimple set of policies and associated keys or policies that specify theuse of related keying materials using a key generation system. In oneexample, the key server 108 is configured to obtain security policyinformation that describes which routers in the system 100 are to becomemembers of the same VPN. The key server 108 uses the cryptographic keysto define router devices to be members of a VPN. For example, the keyserver 108 sends the same cryptographic keys, with the shared SAs, tothe routers that are part of the same VPN. The key server 108 mayperiodically distribute a group key to all of the routers that aredetermined to become members of a same VPN. In other words, the keyserver 108 may send the same cryptographic keys comprising shared SAs toeach of the routers that are part of the same VPN.

In FIG. 1, the routers 102(a)-102(d) are part of the same VPN, and thus,the routers 102(a)-102(d) receive from the key server 108 the same groupkey comprising the same shared SAs. Thus, upon receiving the same groupkey, the routers 102(a)-102(d) are said to be synchronized with eachother. After the routers 102(a)-102(d) are synchronized, they canexchange secure and encrypted communications with each other. The keyserver 108 may distribute a different group key to other routers (notshown) in the system 100 to create another VPN group. Likewise, the keyserver 108 may distribute a different group key to some but not all ofthe routers 102(a)-102(d) to create a different VPN, such that theserouters may be members of both the private network 106 shown in FIG. 1and another VPN.

Routers that are part of the same VPN are referred to as “group members”of the VPN. As stated above, in FIG. 1, routers 102(a)-102(d) are groupmembers of the same VPN (i.e., private network 106). Router 102(a) maybe referred to as “group member A” or “GM A,” router 102(b) may bereferred to as “group member B” or “GM B,” and so on. Group members arealso referred to as peer routers, and for example, GM A, GM B, GM C andGM D are all group peer routers. For example, GM A receives a packetfrom a network device in subnet A and encrypts the packet byencapsulating it in a format that is capable of being decapsulated byother group members (e.g., GM B, GM C and GM D). GM A then sends theencapsulated packet to the appropriate router in the VPN (privatenetwork 106) to be decapsulated and sent to the destination networkdevice in another subnetwork. Likewise, upon receiving an encapsulatedpacket from another group member in the VPN, GM A can decapsulate thepacket and send the decapsulated packet to the appropriate destinationnetwork device in subnet A. Thus, the GM A is said to “protect” networkdevices in subnet A, since GM A ensures that packets sent by the networkdevices in subnet A are securely transmitted to other group members inthe VPN. Similarly, GM B protects network devices in subnet B, GM Cprotects network devices in subnet C, and GM D protects network devicesin subnet D.

The key server 108 may distribute the keys to the group members using,e.g., key exchanges described by the Internet Key Exchange (IKE)protocol. In one example, the IKE protocol is described in the Requestfor Comments (RFC) 2409 by the Internet Engineering Task Force (IETF).Furthermore, IETF RFC 6407 describes a Group Domain of Interpretation(GDOI) protocol for techniques of a key server distributing a group keyto group members. These protocols are merely examples, and other groupkey distribution protocols known or contemplated may be used to enablethe key server 108 to distribute group keys to group members of a VPN.

Once the routers 102(a)-102(d) have received the group key from the keyserver 108, and upon the key server 108 authenticating each router, therouters 102(a)-102(d) are admitted as group members to the VPN. Thegroup members are configured to exchange encrypted traffic with eachother using the group key received from the key server 108. However,membership to a VPN can change over time, and the key server 108 mayperiodically send new group keys with new SAs to the group members toensure their membership in a VPN. For example, each key that is sent bythe key server 108 to the group members may have an expiration lifetime.In order to remain as group members to a VPN, routers need to obtain newkeys from the key server 108. After the key expires, group members of aVPN will not be able to exchange communications with each other usingthe expired key, since the group members will be unable to performencryption and decryption operation on the packets exchanged betweeneach other. Thus, in order to remain as group members to a VPN, it isimportant that the routers receive valid (e.g., “unexpired”) keys withvalid SAs from the key server 108.

Thus, as state above, the key server 108 may periodically monitormembership of a VPN and may send new keys periodically to group membersof a VPN. Group members that receive these periodic new group keys(“rekeys”) remain as members of the VPN. The key server 108 can addother routers to the VPN by sending the rekey to the other routers, andlikewise, the key server 108 may drop routers from the VPN by notsending the rekey. Thus, by sending the group key to the routers102(a)-102(d), the key server 108 defines a group VPN, in which therouters 102(a)-102(d) are group members of a fully-meshed VPN withany-to-any connectivity between the routers.

As a group VPN scales and as more routers are added as group members tothe group VPN, the likelihood increases that the group members of agroup VPN may become unsynchronized. For example, as the key server 108sends rekeys to the group member of the group VPN, some or all of thegroup members may not receive the rekey information. As a result, thegroup members that do not receive the rekey information may not be ableto exchange encrypted and secure communications with group members thatdo receive the rekey information. Although the key server 108 willtypically attempt to deliver missed rekeys several times, networkcongestion conditions (such as high network congestion) may prevent oneor more group members from receiving the rekeys. There may be severalexample scenarios where one or more group members do not receive therekeys. These examples include, but are not limited to, general networkoutages (e.g., if a router has crashed or if a network link fails), anoperator inserted firewall or access control list blocking rekeys,routing protocols that are corrupted during a rekey, mobile and/orwireless router disconnection from the network during rekey, etc.

Typically, the key server 108 sends rekeys for group members of a VPNwhen the SAs in the previous keys are near expiration. Thus, groupmembers can detect whether or not it has missed an expected rekey byexamining the lifetime of the SAs associated with its current key. Forexample, if the SAs of a key are about to expire or have recentlyexpired, and if a group member has not received a rekey, the groupmember can reasonably infer that it has missed a rekey from the keyserver 108. As a result, the group member can send a key request messageto the key server 108 to obtain the rekey (with the new SAs), and if itis appropriate for the key server 108 to send the rekey to the groupmember (i.e., if the group member is still part of the VPN), the keyserver 108 will respond to the key request message by sending the rekeyto the group member.

However, in other scenarios where a rekey is sent not in response to theSAs of the previous keys expiring, but rather in response to other rekeytrigger events, a group member may not be able to determine or realizethat it has missed a rekey from the key server 108. For example, thegroup member may not be able to infer that it missed a rekey by simplyevaluating the lifetime of the SAs associated with its current key,since the rekey event may not be triggered by the expiration of the SAs.Additionally, network conditions (such as network outages) may result inmultiple key servers cooperating to provide keying services. Thissituation may result in multiple SAs being sent to group members of aVPN, but due to network outages, some of the group members may notreceive the SAs.

The techniques described herein alleviate these drawbacks by enabling agroup member to determine whether or not it has missed a rekey and toresynchronize with the other group members upon determining that it hasmissed a rekey. Additionally, the techniques described herein enable agroup member to respond appropriately to receiving a packet with SAsunknown to it. For simplicity, these techniques are described inreference to private network 106 a the VPN and routers 104(a)-104(d) asgroup members of the VPN.

As stated above, the VPN may be a private network within a publicnetwork such as the Internet, and thus, after joining as group membersto the VPN, the routers 104(a)-104(d) may exchange encryptedcommunications in accordance with public exchange protocols. In otherwords, the routers 104(a)-104(d) may exchange communications with eachother by encapsulating packets of public exchange protocols. Forexample, router 104(b) may send a packet to router 104(a) in the VPN byencapsulating the packet with information related to the shared SAsreceived by the group members from the key server 108. In one example, anetwork device in subnet B may send to GM B an IP packet destined for anetwork device in subnet A. It should be appreciated that the techniquesdescribed herein are applicable to any public exchange protocol, and IPexchanges is used as an example. GM B, upon receiving the packet,encapsulates the IP packet with an outer header and encryptioninformation in accordance with the parameters set by the key server 108during the latest key exchange with GM B. For example, GM B mayencapsulate the packet with Security Parameter Index (SPI) value that isassociated with the SAs of the latest key exchange between GM B and thekey server 108 associated with the VPN. In one example, GM B mayencapsulate the IP packet such that the IP packet is now delivered to GMA in the VPN as a secure and encrypted Internet Protocol Security(IPSec) packet.

GM A receives the encapsulated IPSec packet, and since GM A is part ofthe same VPN group and is provisioned with the same key information asGM B, GM A recognizes the SPI value and thus is able to decapsulate thepacket and delivers the underlying IP packet to the network device insubnet A. Since the IP packet is encapsulated by GM B, if anintermediate router in the network path between GM B and GM A receivesthe packet, the intermediate router in the network path would not beable to decapsulate the encapsulated IP packet, because the intermediaterouter does not recognize the SPI value since it is not part of the sameVPN group as GM A and GM B. Thus, the network path between GM B and GM Amay utilize public routers to forward the encapsulated IP packet, butonly specific group member routers are able to decapsulate theencapsulated IP packet. It should be appreciated that the term “SPIvalue” may also be referred to as a “key value.”

However, as shown in FIG. 1, there may be scenarios when GM A does notrecognize the SPI value of the encapsulated packet sent by GM B. Forexample, as described above, even though GM A and GM B are part of thesame VPN, GM A may have missed a rekey provided by the key server 108.Thus, GM B encapsulates the packet with an SPI value associated with SAsof the new rekey that are unknown to GM A. Thus, GM A receives thepacket 112 shown in FIG. 1, but since GM A did not receive the rekey, GMA does not recognize the SPI value associated with the SAs of the rekey.The techniques herein enable GM A to determine whether or not it shouldrecognize the SPI value, and if so, what corrective actions to take.Additionally, the techniques herein enable the key server 108 to selectSPI values associated with SAs of rekeys such that the group members candetect whether or not the SPI values should be known to them.

In general, SPI values are generated by the key server 108, and as aresult, the key server 108 can choose appropriate SPI values whensending keys and rekeys to group members of the VPN. For example, thekey server 108 may choose a predetermined range of SPI values (e.g.,1000-2000) for use within a particular VPN, but this strategy has anumber of drawbacks. First, it is operationally inefficient to reserve anumber of SPI values that may not be used. Additionally, under thisapproach, false-positives are difficult to detect, and since SPI valuesare not chosen over an entire bit sequence (e.g., a 32-bit SPIsequence), it may be easier for third parties to spoof the SPI values toexchange packets to the group members in the VPN.

The techniques described herein enable to key server 108 to optimizeselection of the SPI values. In general, according to the techniquesherein, the key server 108 generates SPIs from a fixed-size counter(e.g., using a block cipher), the details of which the group members areaware. For example, the fixed-size counter (e.g., referred to as “fixedvalue” or “K”) may be associated with a public key (e.g., aRivest-Shamir-Adleman (RSA) public key) known to all of the groupmembers of the VPN and the key server 108. When a group member receivesa packet with an unknown SPI value, the group member reverses the SPIgeneration process to recover a possible counter value (e.g., referredto as “counter value” or “C”). The group member can then determinewhether or not the counter value C is within a range of acceptablecounter values. The range of acceptable counter values is also referredto herein as a range of predicted counter values. The range ofacceptable values is known to the group member based on information inthe fixed value. For example, the range of acceptable values may be sentto the group members as a part of a group policy. For example, the groupmembers may receive a maximum size value for the range as the number ofbits in the counter (e.g., 16 bits with a max size of 65535, with arange between 0 and 65535 (i.e., 0 to 2¹⁶)). It should be appreciatedthat the range may be between 0 to the maximum size value or may be anynumber n to the maximum size value, where the number n may also beprovided to the group members. In another example, the range ofacceptable values may be determined by the group members by the groupmembers evaluating hard-coded information. If the counter value iswithin the range of acceptable values defined by the fixed value, thegroup member determines that the SPI value may be a valid SPI value forthe VPN. The group member can then take an appropriate correctiveaction. If the counter value is not within the range of acceptablevalues, the group member determines that the SPI value is not valid, andthus, the group member may discard the packet.

Reference is now made to FIG. 2. FIG. 2 shows an example flow chart 200depicting operations of GM A receiving the packet 112 with an unknownSPI. At operation 205 in the flow chart 200, GM A receives a packet withan unknown SPI value (e.g., packet 112 in FIG. 1). The packet 112 isencapsulated and sent to GM A by another group member of the VPN (e.g.,GM B). At 210, GM A calculates the fixed value K. As stated above, thefixed value K is a function of group specific information, and thus, thevalue K is known to all of the group members of the VPN. For example GMA may receive the fixed value K as a part of a group policy. In anotherexample, GM A may derive the fixed value K from some other piece ofgroup policy previously received (e.g., from the RSA public key). AfterGM A calculates the fixed value K, GM A, at operation 215, determinesthe counter value C by reversing the SPI generation process. Forexample, GM A performs a decoding operation to determine the countervalue C. At 220, GM A determines whether or not the counter value C fromoperation 215 is within an acceptable range of counter values. If thecounter value C is not within an acceptable range of counter values, GMA, at 225, determines that SPI value in the packet 112 does not belongto the VPN, and accordingly, GM A discards the packet. GM A may storethis value in a database for future reference, such that if GM Areceives another packet with the same unknown SPI value, GM A canimmediately determine that the SPI value does not belong to the VPN. Anexample database of the SPI values is shown below in Table 1.

TABLE 1 SPI value database maintained by group member SPI Value Numberof appearances xxxx . . . 1 3 xxxx . . . 2 1 xxxx . . . 3 8As shown in Table 1, GM A may maintain a database that stores the SPIvalue and indicates a number of times that GM A has previously receivedpackets that have the given SPI value. It should be appreciated thatthere may be other fields in the SPI value database. For example, theSPI value database may comprise policy information associated with eachSPI value that indicates what corrective action, if any, was taken by GMA upon receiving a packet with a particular SPI value.

If the counter value C is within the acceptable range of counter values,GM A, at operation 230, may take corrective action. For example, GM Amay determine that the SPI value in the packet 112 is part of the VPN,and accordingly, GM A may forward the packet 112 without decapsulatingit in case that the SPI value in the packet 112 is a false positive(i.e., the SPI decodes to an acceptable counter value, but was notgenerated by the key server 108). GM A may also discard the packet. GM Amay also assume that it missed a rekey from the key server 108. GM A maythen send a key request message to the key server 108 to obtain a rekeythat was missed by GM A. Alternatively, GM A may store the SPI value ina database and register with the key server 108 only after it receivesseveral more packets with the same SPI. After GM A receives apredetermined number of packets with the same SPI value, GM A may thenregister with the key server 108 to obtain the current policy andassociated keys.

Reference is now made to FIG. 3, which shows an example flow chart 300depicting operations of GM A resynchronizing in response to receivingmultiple packets with unknown SPIs. At operation 305, GM A receives thepacket 112 with an unknown SPI value. At 310, GM A determines whether ornot it has received a previous packet with the same SPI value. Forexample, GM A may perform a lookup in the SPI database (e.g., shown inTable 1, above) to determine whether or not it received a previouspacket with the same SPI value as packet 112. If GM A has not received aprevious packet with the same SPI value, GM A, at 315, calculates thefixed value K. As stated above, the fixed value K is a function of theVPN that is available to all of the group members and the key server108, and from the fixed value K, GM A can determine an acceptable rangeof counter values. At 320, GM A determines a counter value C from theunknown SPI value by reversing the SPI generation process. For example,GM A uses the fixed value K and the SPI value to decode the SPIgeneration process to obtain the counter value C.

At 325, GM A determines whether or not the counter value C determined inoperation 320 is within an acceptable range of counter values. If so, at330, GM A determines a number of times that it has received packets withthe same SPI value and if the number of times exceeds a predeterminedthreshold. If the number of packets previously received by GM A is belowthe predetermined threshold, then at operation 335, GM A ignores thepacket (e.g., discards it). In this example, it should be appreciatedthat the predetermined threshold may be any number (including zero) andthus, the predetermined threshold may be exceeded at the first time GM Areceives the packet. If the number of packets previously received by GMA is above the predetermined threshold, GM A, at operation 340 takescorrective action, including, for example, processing the packet andsending a request to the key server 108 for a rekey, as described above.

If however, the counter value C determined in operation 320 is not in anacceptable range (i.e., if the answer to operation 325 is “no”), GM Awill ignore the packet and discard it, as described in operation 335.Furthermore, if GM A has previously received a packet with the same SPIvalue as packet 112 (i.e., if the answer to operation 310 is “yes”), GMA then determines, at 345, whether or not the SPI belongs to the VPN.For example, GM A may store in its database information as to whether ornot an SPI value was determined to belong to the VPN (e.g., whether ornot the SPI value has a determined counter value C that is within theacceptable range of counter values). If the SPI does not belong to theVPN (i.e., if the answer to operation 345 is “no”), GM A will ignore thepacket and discard it, as described in operation 335. If the SPI doesbelong to the VPN, GM A will revert to operation 330 to determine thenumber of times that it has received packets with the same SPI value.Thus, GM A is able to determine intelligently whether or not to discardor process and forward encrypted packets with unknown SPI values.

Reference is now made to FIG. 4. FIG. 4 shows an example flow chart 400depicting operations of the key server 108 selecting SPI values upongenerating SAs for the group members. In particular, the flow chart 400in FIG. 4 describes operations for the key server 108 to select SPIvalues that can be recognized by group members as being valid SPIvalues, even when the group members do not receive keys or rekeys fromthe key server 108. At 405, the key server 108 selects a counter value Cbetween an acceptable range of counter values. The key server 108, at410, then calculates the fixed value K, which is a function of thespecific VPN that the key server 108 is provisioning. At operation 415,the key sever 108 increments the counter value C, and at 420, determineswhether or not the incremented counter value C has a value that is lowerthan the maximum allowable counter value defined by the acceptable rangeof counter values. If the incremented counter value C is lower than themaximum allowable counter value, at 425, the key server 108 calculatesthe SPI value. The SPI values are calculated, for example, by performingan encoding operation using the incremented counter value C and thefixed value K. In one example, the encoding operation is a 32 bit blockcipher operation, and the counter value C is a 16 bit variable (e.g.,with 2⁶ or 16,536 possible values). Thus, if the counter value C is16,535 before being incremented, the counter value C will increment to avalue of zero. In one example, the SPI value must be a value that isgreater than 255, though it should be appreciated that this is merely anexample.

After calculating the SPI value in operation 425, the key server 108, atoperation 435, determines whether or not the SPI value is greater than apredetermined number (e.g., 255). If so, the key server 108 uses the SPIvalue for the SAs generated for the keys/rekeys to be distributed to thegroup members. If, however, the SPI value is greater than apredetermined number (i.e., if the answer to operation 435 is “no”), thekey server reverts to operation 415, and increments the counter value C.Additionally, if the incremented counter value is ever greater than theacceptable maximum value (i.e., if the answer to operation 420 is “no”),the counter value is reset to zero, and the key server 108 calculatesthe SPI value, as described in connection with operation 435.

It is important that a key server select an SPI value that reduces thelikelihood of a group member detecting a false-positive SPI value fromthe above-described analysis. For example, it is important to minimizethe likelihood that a group member will determine that an SPI value wasgenerated by the key server 108, when it fact it may be a spoof. Thus,as shown in Table 2, false-positives can be minimized by using anappropriately sized counter value C.

TABLE 2 False-positive rates for different counter value bit sizesCounter value bit size SPI space Accuracy False-positive rate 24 16.777M(i.e., 2²⁴) 99.60947% 1 in 256 invalid SPIs 20 1.048M (i.e., 2²⁰)99.97559% 1 in 4096 invalid SPIs 16 65536 (i.e., 2¹⁶) 99.99847% 1 in65536 invalid SPIsAs shown, a 16 bit size for the counter value C provides adequateprotection against false-positives while also allowing for asufficiently large number of SPI values.

Reference is now made to FIG. 5. FIG. 5 shows an example flow chart 500depicting operations performed by the router in response to receivingpackets with unknown SPI values. At operation 505, a first router in anetwork (e.g., GM A) receives from a second router in the network (e.g.,GM B) an encrypted packet that has a security association (e.g., SPIvalue) unknown to the first router in a header of the packet. The firstrouter, at 510, examines the packet to determine a counter valueassociated with the security association. At 515, the first routerdetermines whether the counter value is in a range of predicted countervalues.

Reference is now made to FIG. 6. FIG. 6 shows an example flow chart 600depicting operations performed by the key server 108 to provisionrouters. At 605, the key server 108 selects a counter value that is partof a security association. The key server 108, calculates a key value at610 and, at 615, sends the key value together with the securityassociation to routers in a virtual private network such that therouters are able to exchange encrypted packets with each other in thevirtual private network using the key value and security association. At620, the key server 108 increments the counter value to a value within arange of counter values capable of being predicted by the routers thatreceive the key value.

Reference is now made to FIG. 7. FIG. 7 shows an example block diagramof a router 102 configured to encapsulate a packet received from anetwork device in a subnetwork protected by the router and to modify theouter header of the encapsulated packet. It should be appreciated thatthe router 102 in FIG. 7 may be any of the group member routers102(a)-102(d). For simplicity, the router in FIG. 7 is referred togenerally as router 102. The router device 102 comprises, among othercomponents, a plurality of port units 702, a router application specificintegrated circuit (ASIC) 704, a processor 706 and a memory 708. Theports 702 receive communications (e.g., packets) from network devicesand are configured to send communications to network devices. The ports702 are coupled to the router ASIC 704. The router ASIC 704 receivesinstructions from the processor 706 and forwards packets to appropriateport units 702 for transmission to a destination network device. Therouter ASIC 704 is coupled to the processor 706. The processor 706 is,for example, a microprocessor or microcontroller that is configured toexecute program logic instructions (i.e., software) for carrying outvarious operations and tasks of the router 102, as described above. Forexample, the processor 706 is configured to execute security associationevaluation software 710 according to the techniques described above. Thesecurity association evaluation software 710 also instructs theprocessor to maintain and update a security association database 712(e.g., SPI value database) as described herein. The functions of theprocessor 706 may be implemented by logic encoded in one or moretangible computer readable storage media or devices (e.g., storagedevices compact discs, digital video discs, flash memory drives, etc.and embedded logic such as an application specific integrated circuit,digital signal processor instructions, software that is executed by aprocessor, etc.).

The memory 708 may comprise read only memory (ROM), random access memory(RAM), magnetic disk storage media devices, optical storage mediadevices, flash memory devices, electrical, optical, or otherphysical/tangible (non-transitory) memory storage devices. The memory708 stores software instructions for the security association evaluationsoftware 710. The memory 708 also stores the security associationdatabase 712. Thus, in general, the memory 708 may comprise one or morecomputer readable storage media (e.g., a memory storage device) encodedwith software comprising computer executable instructions and when thesoftware is executed (e.g., by the processor 706) it is operable toperform the operations described for the security association evaluationsoftware 710.

The security association evaluation software 710 may take any of avariety of forms, so as to be encoded in one or more tangible computerreadable memory media or storage device for execution, such as fixedlogic or programmable logic (e.g., software/computer instructionsexecuted by a processor), and the processor 706 may be an ASIC thatcomprises fixed digital logic, or a combination thereof.

For example, the processor 706 may be embodied by digital logic gates ina fixed or programmable digital logic integrated circuit, which digitallogic gates are configured to perform the security associationevaluation software 710. In general, the security association evaluationsoftware 710 may be embodied in one or more computer readable storagemedia encoded with software comprising computer executable instructionsand when the software is executed operable to perform the operationsdescribed hereinafter.

Reference is now made to FIG. 8. FIG. 8 shows an example block diagramof the key server 108. The key server has an interface unit 802, aprocessor 806 and a memory 808. The interface unit 802 is configured tosend and receive messages (e.g., keys and rekeys) to the routers102(a)-102(d). The interface unit is coupled to the processor 806. Theprocessor is substantially similar to processor 706 described inconnection with FIG. 7. In particular, the processor 806 is configuredto execute security association generation software 810 to generatesecurity associations and keying information, as described herein. Thesecurity association generation software 810 is stored in memory 808.The memory 808 may comprise a substantially same form as the memory 708described in connection with FIG. 7. Likewise, the security associationgeneration software 810 may comprise a substantially same form as thesecurity association evaluation software 710 in described in connectionwith FIG. 7.

It should be appreciated that the techniques described above inconnection with all embodiments may be performed by one or more computerreadable storage media that is encoded with software comprising computerexecutable instructions to perform the methods and steps describedherein. For example, the operations performed by the routers, key serverand network devices may be performed by one or more computer or machinereadable storage media (non-transitory) or device executed by aprocessor and comprising software, hardware or a combination of softwareand hardware to perform the techniques described herein.

In summary, a method is provided comprising: at a first router in anetwork, receiving from a second router in the network an encryptedpacket that has a security association unknown to the first router in aheader of the packet; examining the packet to determine a counter valueassociated with the security association; and determining whether thecounter value is in a range of predicted counter values.

In addition, a method is provided comprising: at a first router in anetwork, receiving from a second router in the network an encryptedpacket that has a security association unknown to the first router in aheader of the packet; examining the packet to determine a counter valueassociated with the security association; and determining whether thecounter value is in a range of predicted counter values.

Furthermore, an apparatus is provided comprising: a plurality of portsconfigured to send and receive messages in a network; and a processorcoupled to the ports, and configured to: receive from a router in thenetwork an encrypted packet that has an unknown security associationapparatus in a header of the packet; examine the packet to determine acounter value associated with the security association; and determinewhether the counter value is in a range of predicted counter values.

The above description is intended by way of example only. Variousmodifications and structural changes may be made therein withoutdeparting from the scope of the concepts described herein and within thescope and range of equivalents of the claims.

What is claimed is:
 1. A method comprising: at a key server configuredto provision a plurality of routers that are part of a virtual privatenetwork, selecting a counter value that is part of a securityassociation, wherein the counter value is selected from a range ofcounter values and a maximum size value of the range of counter valuesis based on a number of bits in the counter value; determining whetherthe counter value is lower than the maximum size value; in response todetermining that the counter value is lower than the maximum size value,determining a Security Parameter Index (“SPI”) value as a key value;sending the key value together with the security association to theplurality of routers such that the plurality of routers are able toexchange encrypted packets with each other in the virtual privatenetwork using the key value and the security association; andincrementing the counter value to a value within a range of countervalues capable of being predicted by the plurality of routers thatreceive the key value.
 2. The method of claim 1, wherein sendingcomprises sending the key value to one or more of the plurality ofrouters that is part of the virtual private network to enable at leastone router that is part of the virtual private network, but that has notreceived the key value, to determine the key value.
 3. The method ofclaim 1, further comprising sending an updated security association withthe incremented counter value to the plurality of routers that are partof the virtual private network.
 4. The method of claim 3, furthercomprising: receiving a request from one or more of the plurality ofrouters for the updated security association; and providing the updatedsecurity association to the one or more of the plurality of routers inresponse to the request.
 5. The method of claim 1, wherein determiningan SPI value further comprises selecting an SPI value that reduces thelikelihood that a group member associated with the plurality of routerswill detect a false-positive SPI value.
 6. The method of claim 1,wherein determining an SPI value further comprises performing anencoding operation using the counter value and a fixed value that is afunction of a value associated with the virtual private network.
 7. Themethod of claim 6, wherein the encoding operation is a block cipheroperation.
 8. The method of claim 1, further comprising: determiningwhether the SPI value is greater than a predetermined number; and if itis determined that the SPI value is greater than the predeterminednumber, associating the SPI value with the security association.
 9. Themethod of claim 8, further comprising: if it is determined that the SPIvalue is less than or equal to the predetermined number, incrementingthe counter value; and determining whether the counter value is greaterthan the maximum size value, and if so, resetting the counter value tozero.
 10. The method of claim 1, wherein sending comprises sending thekey value together with the security association to the plurality ofrouters using an Internet Key Exchange (“IKE”) protocol.
 11. Anapparatus comprising: a network interface unit configured to send andreceive messages in a network; and a processor coupled to the networkinterface unit, and configured to: select a counter value that is partof a security association, wherein the counter value is selected from arange of counter values and a maximum size value of the range of countervalues is based on a number of bits in the counter value; determinewhether the counter value is lower than the maximum size value; inresponse to determining that the counter value is lower than the maximumsize value, determine a Security Parameter Index (“SPI”) value as a keyvalue; send the key value together with the security association to aplurality of routers that are part of a virtual private network suchthat the plurality of routers are able to exchange encrypted packetswith each other in the virtual private network using the key value andthe security association; and increment the counter value to a valuewithin a range of counter values capable of being predicted by theplurality of routers that receive the key value.
 12. The apparatus ofclaim 11, wherein the processor is further configured to send the keyvalue to one or more of the plurality of routers that is part of thevirtual private network to enable at least one router that is part ofthe virtual private network, but that has not received the key value, todetermine the key value.
 13. The apparatus of claim 11, wherein theprocessor is further configured to send an updated security associationwith the incremented counter value to the plurality of routers that arepart of the virtual private network.
 14. The apparatus of claim 13,wherein the processor is further configured to: receive a request fromone or more of the plurality of routers for the updated securityassociation; and provide the updated security association to the one ormore of the plurality of routers in response to the request.
 15. Anon-transitory processor readable medium storing instructions that, whenexecuted by a processor, cause the processor to: select a counter valuethat is part of a security association, wherein the counter value isselected from a range of counter values and a maximum size value of therange of counter values is based on a number of bits in the countervalue; determine whether the counter value is lower than the maximumsize value; in response to determining that the counter value is lowerthan the maximum size value, determine a Security Parameter Index(“SPI”) value as a key value; send the key value together with thesecurity association to a plurality of routers that are part of avirtual private network, such that the plurality of routers are able toexchange encrypted packets with each other in the virtual privatenetwork using the key value and the security association; and incrementthe counter value to a value within a range of counter values capable ofbeing predicted by the routers that receive the key value.
 16. Theprocessor readable medium of claim 15, wherein the instructions arefurther operable to cause the processor to send the key value to one ormore of the plurality of routers that is part of the virtual privatenetwork to enable at least one router that is part of the virtualprivate network, but that has not received the key value, to determinethe key value.
 17. The processor readable medium of claim 15, whereinthe instructions are further operable to cause the processor to send anupdated security association with the incremented counter value to theplurality of routers that are part of the virtual private network. 18.The processor readable medium of claim 17, wherein the instructions arefurther operable to cause the processor to: receive a request from oneor more of the plurality of routers for the updated securityassociation; and provide the updated security association to the one ormore routers of the plurality of routers in response to the request.